#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#define sys_t unsigned int
#define MAX_LINK 3

struct sys_node_t {
	sys_t signal;
	struct sys_node_t *link[MAX_LINK];
};
typedef struct sys_node_t sys_node;

volatile static sys_node *head_node;

sys_node *allocate(sys_node *t)
{
	t=(sys_node *)malloc(sizeof(sys_node));
	return t;
}

sys_node *link_node(sys_node *to,sys_node *fr)
{
	int i;
	for(i=0;i<MAX_LINK;i++)	{
		if(fr->link[i]==NULL)	{
			fr->link[i]=to;
			return to;
		}
	}
	return NULL;
}

#ifdef __cplusplus
    #define __CPPARGS ...
#else
    #define __CPPARGS
#endif
void interrupt ( *oldhandler)(__CPPARGS);
#define INTR 0x1C	/* The clock tick interrupt */

void interrupt handler(__CPPARGS)
{
	printf("salil");
}

void main()
{
	sys_node *node0,*node1,*node2,*node3;
	clrscr();
	/*allocate(node0);
	allocate(node1);
	allocate(node2);
	allocate(node3);
	head_node=node0;
	link_node(node0,node1);
	link_node(node1,node2);
	link_node(node3,node2);*/
	oldhandler = getvect(INTR);
	setvect(INTR, handler);
	getch();
	setvect(INTR, oldhandler);
}